// group0 公共 group1 Trans group2\group3 材质   group4 geometry
const locations = {
  // group0
  camera: [0, 1],
  ambientLight: [0, 2],
  hemisLight: [0, 3],
  punctualLight: [0, 4],
  punctualCount: [0, 5],
  irradianceMap: [0, 6],
  prefilterMap: [0, 7],
  brdfLUT: [0, 8],
  iBLSampler: [0, 9],
  environmenIntensity: [0, 10],
  ColorAdjust: [0, 11],
  TotalLightCamera: [0, 12],
  SingleLightCamera: [0, 13],
  ShadowMap: [0, 14],
  ShadowSampler: [0, 15],
  lightCastCount: [0, 15],
  gBuffer: [0, 16],
  pointLightShadow: [0, 17],
  ShadowMapPoint: [0, 18],
  ShadowSamplerPoint: [0, 19],
  ShadowPointIndex: [0, 20],

  // group1
  trans: [1, 0],
  transinstance: [1, 0],
  //
  u_MorphTargetsSampler: [1, 1],
  u_morphWeights: [1, 2],
  jointMatrixs: [1, 3],
  pickId: [1, 4],
  pickIdInstance: [1, 4],
  relativeShift: [1, 5],
  pointSize: [1, 6],
  pointVertexCount: [1, 7],
  map_uvOffset: [1, 8],
  map_uvPixel: [1, 9],
  lineWidth: [1, 10],
  WEIGHT_COUNT: [5, 17],
  morphPositionOffset: [5, 18],
  morphNormalOffset: [5, 19],
  morphTangentOffset: [5, 20],
  particle: [1, 10],
  // group2
  material: [2, 0],
  map: [2, 1],
  mapSampler: [2, 2],
  mapUVTransform: [2, 3],

  emissiveMap: [2, 8],
  emissiveMapSampler: [2, 9],
  emissiveMapUVTransform: [2, 10],
  ambientMap: [2, 11],
  ambientMapSampler: [2, 12],
  ambientMapUVTransform: [2, 13],
  diffuseMap: [2, 14],
  diffuseMapSampler: [2, 15],
  diffuseMapUVTransform: [2, 16],
  specularMap: [2, 17],
  specularMapSampler: [2, 18],
  specularMapUVTransform: [2, 19],
  mapUvOffset: [2, 20],
  normalMap: [2, 21],
  normalMapSampler: [2, 22],
  normalMapUVTransform: [2, 23],
  aoMap: [2, 24],
  aoMapSampler: [2, 25],
  aoMapUVTransform: [2, 26],
  alphaMap: [2, 27],
  alphaMapSampler: [2, 28],
  alphaMapUVTransform: [2, 29],

  toneMappingExposure: [2, 33],
  displacementMap: [2, 34],
  displacementMapSampler: [2, 35],
  displacementMapUvTransform: [2, 36],
  displacementScale: [2, 37],
  displacementBias: [2, 38],
  standardMaterialProperties: [2, 30],
  radius: [2, 31],
  colors: [2, 32],
  dOffset: [2, 39],
  enableDarker: [2, 40],

  // group3

  metRougMap: [3, 1],
  metRougMapSampler: [3, 2],
  metRougMapUVTransform: [3, 3], //mat3
  // Specular Glossiness
  uSG_DiffuseFactor: [3, 4],
  uSG_SpecularFactor: [3, 5],
  uSG_GlossinessFactor: [3, 6],
  uSG_Diffuse: [3, 7],
  uSG_DiffuseSampler: [3, 8],
  uSG_DiffuseUVTransform: [3, 9], //mat3
  uSG_SpecularGlossiness: [3, 10],
  uSG_SpecularGlossinessSampler: [3, 11],
  uSG_SpecularGlossinessUVTransform: [3, 12], //mat3
  // Sheen
  u_SheenRoughnessFactor: [3, 13], //f32
  u_SheenColorFactor: [3, 14], //vec3
  u_SheenColor: [3, 15],
  u_SheenColorSampler: [3, 16],
  u_SheenColorUVTransform: [3, 17], //mat3
  u_SheenRoughness: [3, 18],
  u_SheenRoughnessSampler: [3, 19],
  u_SheenRoughnessUVTransform: [3, 20], //mat3
  u_SheenELUTSampler: [3, 21], //mat3
  u_SheenELUT: [3, 22], //mat3
  u_CharlieLUTSampler: [3, 23], //mat3
  u_CharlieLUT: [3, 24], //mat3
  u_CharlieEnvSampler: [3, 25], //mat3
  u_CharlieEnv: [3, 26], //mat3
  // Clearcoat
  u_ClearcoatFactor: [3, 27], //f32
  u_ClearcoatRoughnessFactor: [3, 28], //f32
  u_Clearcoat: [3, 29],
  u_ClearcoatSampler: [3, 30],
  u_ClearcoatUVTransform: [3, 31], //mat3
  u_ClearcoatRoughness: [3, 32],
  u_ClearcoatRoughnessSampler: [3, 33],
  u_ClearcoatRoughnessUVTransform: [3, 34], //mat3
  u_ClearcoatNormal: [3, 35],
  u_ClearcoatNormalSampler: [3, 36],
  u_ClearcoatNormalUVTransform: [3, 37], //mat3
  u_ClearcoatNormalScale: [3, 38],
  // SPECULAR
  specularColorFactor: [3, 39], //vec3
  specularFactor: [3, 40], //f32
  u_Specular: [3, 41], //texture_2d
  u_SpecularSampler: [3, 42], //sampler
  u_SpecularUVTransform: [3, 43], //mat3
  u_SpecularColor: [3, 44], //texture_2d
  u_SpecularColorSampler: [3, 45],
  u_SpecularColorUVTransform: [3, 46], //mat3

  // Transmission
  u_TransmissionFactor: [3, 47], //f32
  u_Transmission: [3, 48], //texture_2d
  u_TransmissionSampler: [3, 49], //sampler
  u_TransmissionUVTransform: [3, 50], //mat3
  u_TransmissionFramebuffer: [3, 51], //texture_2d
  u_TransmissionFramebufferSampler: [3, 52], //sampler
  u_TransmissionFramebufferSize: [3, 53], //vec2
  // Volume
  u_ThicknessFactor: [3, 54], //float
  u_AttenuationColor: [3, 55], //vec3
  u_AttenuationDistance: [3, 56], //float
  u_Thickness: [3, 57], //texture_2d
  u_ThicknessSampler: [3, 58], //sampler
  u_ThicknessUVTransform: [3, 59], //mat3
  // Emissive Strength
  u_EmissiveStrength: [3, 60], //f32
  // Iridescence
  u_Iridescence: [3, 61], //texture_2d
  u_IridescenceSampler: [3, 62], //sampler
  u_IridescenceUVTransform: [3, 63], //mat3
  u_IridescenceThickness: [3, 64], //texture_2d
  u_IridescenceThicknessSampler: [3, 65], //sampler
  u_IridescenceThicknessUVTransform: [3, 66], //mat3
  u_IridescenceFactor: [3, 67],
  u_IridescenceIor: [3, 68],
  u_IridescenceThicknessMinimum: [3, 69],
  u_IridescenceThicknessMaximum: [3, 70],
  // IOR
  ior: [3, 71], //f32
  // Anisotropy
  u_Anisotropy: [3, 72], //vec3
  u_AnisotropyMap: [3, 73], //texture_2d
  u_AnisotropySampler: [3, 74], //sampler
  u_AnisotropyUVTransform: [3, 75], //mat3
  // Alpha mode
  alphaCutoff: [3, 72],
  u_DiffuseTransmission: [3, 76],
  u_DiffuseTransmissionSampler: [3, 77],
  u_DiffuseTransmissionUVTransform: [3, 78],
  u_DiffuseTransmissionColor: [3, 79],
  u_DiffuseTransmissionColorSampler: [3, 80],
  u_DiffuseTransmissionColorUVTransform: [3, 81],
  u_DiffuseTransmissionFactor: [3, 82],
  u_DiffuseTransmissionColorFactor: [3, 83],
  // geometry 4
  position: [4, 0],
  normal: [4, 1],
  texCood0: [4, 2],
  texCood1: [4, 3],
  tangent: [4, 4],
  indices: [4, 5],
  color: [4, 6],
  joints0: [4, 7],
  weights0: [4, 8],
  joints1: [4, 9],
  weight1: [4, 10],
  pointNormal: [4, 11],
  uvWidthFactor: [4, 12],
  offset: [4, 13],
  size: [4, 14],
  rotation: [4, 15],
  opacity: [4, 2],
  visible: [4, 3],
  buffer: [4, 0],

  //config 5
  materialType: [5, 0],
  primitive: [5, 1],
  blendMode: [5, 2],
  depthStencil: [5, 3],
  transparent: [5, 4],
  toneMapping: [5, 5],
  alphaMapUVIndex: [5, 6],
  aoMapUVIndex: [5, 7],
  mapUVIndex: [5, 8],
  emissiveMapUVIndex: [5, 9],
  ambientMapUVIndex: [5, 10],
  diffuseMapUVIndex: [5, 11],
  specularMapUVIndex: [5, 12],
  sdf: [5, 13],
  geometryType: [5, 14],
  instanceCount: [5, 15],
  pointSizeVarying: [5, 17],
  cameraSide: [5, 14],
  colorF32: [5, 21],
  colorVec3: [5, 22],
  receiveShadow: [5, 23],
  pixelUnit: [5, 24],
  stencilReference: [5, 25],
  writeMask: [5, 26],
  linear: [5, 27],
  raiseDepth: [5, 28]
};
export { locations };
